<?php

class Application_Model_PrzesylkaMapper
{

protected $_dbTable;

    public function init()
    {
        $this->_dbTable = new Application_Model_DbTable_Przesylka();
    }

    public function setDbTable($dbTable)
    {
        $dbTable = new $dbTable();

        if(!$dbTable instanceof Zend_Db_Table_Abstract)
        {
            throw new Exception('Invalid table data gateway provided');
        }

        $this->_dbTable = $dbTable;
        return $this;
    }

    public function getDbTable()
    {
        if(null == $this->_dbTable)
        {
            $this->setDbTable('Application_Model_DbTable_Przesylka');
        }
        return $this->_dbTable;
    }

    public function dodajPrzesylka(Application_Model_Przesylka $przesylka)
    {
        $data = array(
            'id_nad' => $przesylka->getIdNadawca(),
            'nadawca' => $przesylka->getNadawca(),
            'odbiorca' => $przesylka->getOdbiorca(),
            'waga' => $przesylka->getWaga(),
            'pobranie' => $przesylka->getPobranie(),
            'adres' => $przesylka->getAdres(),
            'miasto' => $przesylka->getMiasto(),
            'wysokosc' => $przesylka->getWysokosc(),
            'szerokosc' => $przesylka->getSzeorkosc(),
            'glebokosc' => $przesylka->getGlebokosc()
        );

        $this->getDbTable()->insert($data);
        return $this->getDbTable()->getAdapter()->lastInsertId();

        /* $kie = new Application_Model_UzytkownicyKierunek();
          $kieMapper = new Application_Model_UzytkownicyKierunekMapper();

          foreach ($kierunek as $kierunek_) {
          $kie->setIdKierunek($kierunek_);

          $kieMapper->dodaj($kie);
          } */
    }

    public function edytujPrzesylka(Application_Model_Przesylka $przedmiot, $id)
    {
        $data = array(
            'nadawca' => $przedmiot->getNadawca(),
            'adresat' => $przedmiot->getAdresat(),
            'waga' => $przedmiot->getEgzamin(),
            'pobranie' => $przedmiot->getSemestr(),
                //      'id_kier' => $przedmiot->getIdKierunek()
        );

        $where = $this->getDbTable()->getAdapter()->quoteInto('id_przed = ?', $id);
        $this->getDbTable()->update($data, $where);
    }

    public function usun($id)
    {
        $where = $this->getDbTable()->getAdapter()->quoteInto('id_przed = ?', $id);
        $this->getDbTable()->delete($where);
    }



    public function listaPrzesylka() {
        $resultSet = $this->getDbTable()->fetchAll();

        $uzytkownicy = array();

        foreach ($resultSet as $row) {
            $uzytkownik = new Application_Model_Przesylka();
           // $studMapper = $row->findDependentRowset('Application_Model_DbTable_Student');

            $uzytkownik->setNazwa($row->nadawca)
                    ->setEcts($row->adresat)
                    ->setEgzamin($row->waga)
                //    ->setNrIndeksu($row->nr_indeksu)
          //          ->setRola($rolaMapper->rola);
                            ;
               if($row->waga == 1)
                {
                    $uzytkownik->setEgzamin('NIE');
                }
            else if($row->waga == 2)
                {
                    $uzytkownik->setEgzamin('TAK');
                }
            $uzytkownicy[] = $uzytkownik;
        }
        return $uzytkownicy;
    }


    public function podajPrzesylkay($zmienna, $pole)
    {
        $where = $this->getDbTable()->getAdapter()->quoteInto("$pole = ?", $zmienna);
        $resultSet = $this->getDbTable()->fetchAll($where);

        $przedmioty = array();

        foreach($resultSet as $row)
        {
            $przed = new Application_Model_Przesylka();

            $przed->setIdPrzed($row->id_przed)
                    ->setNazwa($row->nadawca)
                    ->setEcts($row->adresat)
                    ->setSemestr($row->pobranie);

            if($row->waga == 1)
            {
              $przed->setEgzamin('Nie');
            }
            else
            {
              $przed->setEgzamin('Tak');
            }

            $przedmioty[] = $przed;
        }
        return $przedmioty;
    }

    public function podajPrzesylka($id, Application_Model_Przesylka $przed)
    {
        $resultSet = $this->getDbTable()->find($id);
        $row = $resultSet->current();

        $przed->setIdPrzed($row->id_przed)
                    ->setNazwa($row->nadawca)
                    ->setEcts($row->adresat)
                    ->setEgzamin($row->waga)
                    ->setSemestr($row->pobranie);
    }
    
    public function zmienStatus($id,$status)
        {
            $data = array('stan'=> $status);

            $where = $this->getDbTable()->getAdapter()->quoteInto('id_przesylka = ?', $id);

            $this->getDbTable()->update($data,$where);
        }
}

